Various applications use data that represent a particular environment. One example of such an application involves the modeling of electromagnetic wave propagation throughout an environment that includes buildings and possibly other types of structures. Wave propagation modeling can be performed for various reasons, including a need to understand existing telecommunications system coverage and a need to predict potential coverage configurations.
The structure data that is used in such modeling, as well as in other applications, is often specified in terms of polyhedrons, in which one or more polyhedrons make up each building or other type of structure. Each polyhedron, in turn, can be defined by both an ordered set of vertices and a height. Each vertex in the ordered set can be represented using coordinates, and the set itself defines a polygon footprint of the polyhedron being defined. Some of these types of polyhedrons are referred to as “prisms” that have a polygon footprint and vertical walls.
Structure data, including that of buildings, is typically created from satellite imagery or other imagery captured from a reconnaissance point that scans the various structures in the environment. Because the limitations of the source of the structure data are well understood and quantifiable, the data itself can be characterized as being at a particular resolution of detail. Similarly, the data can be also characterized in terms of horizontal and/or vertical accuracies, in that each point (e.g., vertex, etc.) specified can deviate from its true position according to a specified accuracy.
The operations that are performed, by at least some applications, on data that represent an environment can include checking for visibility of a first point in space from a second point and checking for the obstruction of the first point in relation to the second point, to name a few operations. The operations that are performed on the data are often computationally intensive, however, and can require large amounts of computer-processing resources, such as instruction cycles, memory, and input-output operations.